﻿Imports System.Data
Imports VSModel
Imports Cls_Common
Imports SecurityService
Partial Class FrontEnd_Control_DangKyKDCreate
    Inherits System.Web.UI.UserControl
    Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
#Region "Event for control "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim script As ScriptManager = ScriptManager.GetCurrent(Me.Page)
            If Not script Is Nothing AndAlso script.IsInAsyncPostBack Then
                ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "duyjs", "ajaxJquery()", True)
            Else
                Me.Page.ClientScript.RegisterStartupScript(Me.Page.GetType(), "duyjs", String.Concat("Sys.Application.add_load(function(){", "ajaxJquery()", "});"), True)
            End If
            hidCurHuyenId.Value = Session("UserCurHuyenId")
            Load2Grid()
            LoadCheckBegin()
        End If
    End Sub
    Protected Sub Load2Grid()
        Using _data As New VSEntities
            'Tỉnh
            Dim TinhDiaDiemKD = (From q In _data.Provinces Where q.ParentId = 0 Order By q.Title Select q.Id, q.Code, q.Title).ToList
            With ddlTinhDiaDiemKD
                .DataSource = TinhDiaDiemKD
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            Dim TinhHoKhau = (From q In _data.Provinces Where q.ParentId = 0 Order By q.Title Select q.Id, q.Code, q.Title).ToList
            With ddlTinhHoKhau
                .DataSource = TinhHoKhau
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            Dim TinhHienTai = (From q In _data.Provinces Where q.ParentId = 0 Order By q.Title Select q.Id, q.Code, q.Title).ToList
            With ddlTinhHienTai
                .DataSource = TinhHienTai
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            'load huyen theo tinh
            Dim _CurHuyen = (From q In _data.Provinces Where q.ParentId = 171 Select q).ToList
            With ddlHuyenDiaDiemKD
                .DataSource = _CurHuyen
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            With ddlHuyenHoKhau
                .DataSource = _CurHuyen
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            With ddlHuyenHienTai
                .DataSource = _CurHuyen
                .DataValueField = "Id"
                .DataTextField = "Title"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            'NGanh nghe
            Dim linhvuc = (From q In _data.BusinessFields Order By q.Name Select New With {.Id = q.Id, .Name = q.Name}).ToList
            With ddlBusinessField
                .DataSource = linhvuc
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With

            'dan toc
            Dim dantoc = (From q In _data.Citizens Order By q.Name Select New With {.Id = q.Name, .Name = q.Name}).ToList
            With ddlCitizen
                .DataSource = dantoc
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With

            'quoc gia
            Dim Country = (From q In _data.Countries Order By q.Name Select New With {.Id = q.Name, .Name = q.Name}).ToList
            With ddlCountry
                .DataSource = Country
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With

            'dong vi cap giay chung nhan CMND
            Dim DeptCertified = (From q In _data.DeptIdentifies Order By q.Name Select New With {.Id = q.Name, .Name = q.Name}).ToList
            With ddlDeptCertified
                .DataSource = DeptCertified
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With

            'dong vi cap giay chung nhan khac
            Dim d = (From q In _data.DeptIdentifies Order By q.Name Select New With {.Id = q.Id, .Name = q.Name}).ToList
            With ddlOthersPaper_NoiCap
                .DataSource = d
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            'giấy tờ khác
            Dim CertifiedPaperDict = (From q In _data.CertifiedPaperDicts Order By q.Name Select New With {.Id = q.Id, .Name = q.Name}).ToList
            With ddlOthersPaper
                .DataSource = CertifiedPaperDict
                .DataValueField = "Id"
                .DataTextField = "Name"
                .DataBind()
                .Items.Insert(0, New ListItem("--- Chọn ---", "0"))
            End With
            'thanh phan ho so
            Dim lstThanhPhanHoSo = (From q In _data.ThanhPhanHoSoes Order By q.IsDefault Descending, q.TenHoSo Select q).ToList
            Dim strKey_Name() As String = {"Id", "MaHoSo", "IsDefault"}
            With grdShow
                .DataKeyNames = strKey_Name
                .DataSource = lstThanhPhanHoSo
                .DataBind()
            End With

        End Using
    End Sub
    Protected Sub LoadCheckBegin()
        Using _data As New VSEntities
            Dim _UsercurHuyenId As Integer = Session("UserCurHuyenId")
            'tinh cap chung minh nhan dan
            ddlDeptCertified.SelectedValue = "Công An An Giang" 'huyen An Giang
            'Tinh
            ddlTinhHoKhau.SelectedValue = 171 'huyen An Giang
            ddlTinhHienTai.SelectedValue = 171 'huyen An Giang
            ddlTinhDiaDiemKD.SelectedValue = 171 'huyen An Giang
            'quoc tich
            ddlCountry.SelectedValue = "Việt Nam"

        End Using
    End Sub
    Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Using data As New VSEntities

            Dim checkCode = (From q In data.CertifiedHouseholds Where q.Biz_VietName = txtBizName.Text.Trim() Select q).FirstOrDefault
            If checkCode Is Nothing Then
                Dim p As New VSModel.CertifiedHousehold
                Try
                    'Thông tin chung
                    p.CertifiedStatus = "M" 'cấp mới
                    p.CertifiedUp_Time = 0 'cap moi
                    p.CertifiedUp_Date = Now 'ngay nhap ho so
                    'thong tin ca nhan
                    p.Ow_Name = txtOwRepresentative.Text 'Họ tên
                    p.Ow_Sex = rdlSex.SelectedValue 'giới tính
                    p.Ow_BirthDate = txtOwDateOfBirth.Text 'ngày tháng năm sinh
                    p.Ow_National_ID = ddlCitizen.Text 'dân tộc
                    p.Ow_Nationality_ID = ddlCountry.Text 'Quốc tịch


                    p.Ow_CardID = txtOwCardId.Text 'Số CMND
                    p.Ow_CardDate = StringToDate(txtOwCardDate.Text) 'Ngày cấp
                    p.Ow_Provider_ID = ddlDeptCertified.Text 'Nơi cấp

                    'giay to khac
                    p.Ow_Doc_ID = ddlOthersPaper.SelectedValue 'Giấy tờ khác
                    p.Ow_DocCode = txtOtherPaperCode.Text 'Mã số
                    p.Ow_DocDate = StringToDate(txtOthersPaperDateIssue.Text.Trim()) 'Ngày cấp

                    p.Ow_DocOffiCertifiedID = ddlOthersPaper_NoiCap.SelectedValue 'Nơi cấp

                    'Thông tin hộ kinh doanh: 
                    p.Biz_VietName = txtBizName.Text.Trim() 'Tên hộ kinh doanh
                    p.Ow_Tel = txtOw_Tel.Text.Trim() 'điện thoai
                    p.Ow_Fax = txtOw_Fax.Text.Trim() 'fax
                    p.Ow_Email = txtOw_Email.Text.Trim() 'Email
                    p.Ow_WebSite = txtOw_WebSite.Text.Trim() 'Website
                    'nganh nghe kinh doanh và linh vưc
                    ' p.NganhNgheKinhDoanh = ddlNganhNgheKinhDoanh.SelectedValue 'ngành nghề kinh doanh
                    p.LinhVucKinhDoanh = ddlBusinessField.Text 'Lĩnh vực kinh doanh
                    p.VonTienMat = txtVonTienMat.Text.Trim
                    p.VonTaiSan = txtVonTaiSan.Text.Trim
                    p.Biz_InvestCapital = txtBiz_InvestCapital.Text.Trim().Replace(".", "") 'vốn kinh doanh
                    p.Biz_WordsMoney = txtMoney_string.Text.Trim() 'Tiền viết bằng chữ

                    p.Created = Now
                    p.Creator = Session("UserName")
                    p.StatusId = TinhTrangHoSo.Nhap ' de duyet tai lieu
                    p.NguonTao = NguonTao.NguoiDan
                    p.ProvinceId = hidHuyenDiaDiemKD.Text ' Huyên đang ký kinh doanh
                    data.CertifiedHouseholds.AddObject(p)
                    data.SaveChanges()
                    'Địa chỉ phường xa huyên
                    Dim tht As New VSModel.CertifiedHouseholdAddress
                    'thường trú
                    tht.CertifiedID = p.CertifiedID
                    tht.TypeId = LoaiDiaChi.ThuongTru
                    tht.Adress = txtDiaChiHoKhau.Text.Trim()
                    tht.TinhId = ddlTinhHoKhau.SelectedValue
                    'khi set = javascript se ko lay dc  phai set vao hidden field
                    tht.HuyenId = hidHuyenHoKhau.Text
                    tht.XaThiTranId = hidXaThiTranHoKhau.Text
                    data.CertifiedHouseholdAddresses.AddObject(tht)
                    data.SaveChanges()
                    'luu thuong tru vao CertifiedHousehold
                    'lay tien cac truong theo value
                    'xa
                    Dim jx = (From q In data.Provinces Where q.Id = hidXaThiTranHoKhau.Text Select q.Title).FirstOrDefault
                    'huyen
                    Dim jh = (From q In data.Provinces Where q.Id = hidHuyenHoKhau.Text Select q.Title).FirstOrDefault
                    'tinh
                    Dim jt = (From q In data.Provinces Where q.Id = ddlTinhHoKhau.SelectedValue Select q.Title).FirstOrDefault
                    p.Ow_Resident = txtDiaChiHoKhau.Text.Trim() & ", " & jx & ", " & jh & ", " & jt
                    data.SaveChanges()
                    'tam trú
                    Dim tt As New VSModel.CertifiedHouseholdAddress
                    tt.CertifiedID = p.CertifiedID
                    tt.TypeId = LoaiDiaChi.TamTru
                    tt.Adress = txtDiaChiHienTai.Text.Trim()
                    tt.TinhId = ddlTinhHienTai.SelectedValue
                    'khi set = javascript se ko lay dc  phai set vao hidden field
                    tt.HuyenId = hidHuyenHienTai.Text
                    tt.XaThiTranId = hidXaThiTranHienTai.Text
                    data.CertifiedHouseholdAddresses.AddObject(tt)
                    data.SaveChanges()
                    'luu tam tru vao certifiedhousehold
                    'lay tien cac truong theo value
                    'xa
                    Dim jxt = (From q In data.Provinces Where q.Id = hidXaThiTranHienTai.Text Select q.Title).FirstOrDefault
                    'huyen
                    Dim jht = (From q In data.Provinces Where q.Id = hidHuyenHienTai.Text Select q.Title).FirstOrDefault
                    'tinh
                    Dim jtt = (From q In data.Provinces Where q.Id = ddlTinhHienTai.SelectedValue Select q.Title).FirstOrDefault
                    p.Ow_Present = txtDiaChiHienTai.Text.Trim() & ", " & jxt & ", " & jht & ", " & jtt
                    'địa điểm kinh doanh
                    Dim kd As New VSModel.CertifiedHouseholdAddress
                    kd.CertifiedID = p.CertifiedID
                    kd.TypeId = LoaiDiaChi.DiaDiemKinhDoanh
                    kd.Adress = txtBiz_HeadOffice.Text.Trim()
                    kd.TinhId = ddlTinhDiaDiemKD.SelectedValue
                    'khi set = javascript se ko lay dc  phai set vao hidden field
                    kd.HuyenId = hidHuyenDiaDiemKD.Text
                    kd.XaThiTranId = hidXaThiTranDiaDiemKD.Text
                    data.CertifiedHouseholdAddresses.AddObject(kd)
                    data.SaveChanges()
                    'luu dia diem kinh doanh vao certifiedhousehold
                    'lay tien cac truong theo value
                    'xa
                    Dim jxd = (From q In data.Provinces Where q.Id = hidXaThiTranDiaDiemKD.Text Select q.Title).FirstOrDefault
                    'huyen
                    Dim jhd = (From q In data.Provinces Where q.Id = hidHuyenDiaDiemKD.Text Select q.Title).FirstOrDefault
                    'tinh
                    Dim jtd = (From q In data.Provinces Where q.Id = ddlTinhDiaDiemKD.SelectedValue Select q.Title).FirstOrDefault
                    p.Biz_HeadOffice = txtBiz_HeadOffice.Text.Trim() & ", " & jxd & ", " & jhd & ", " & jtd
                    'start ngành nghề

                    'lưu thông tin cho CertifiedHouseholdNganhNghe
                    Try
                        Dim index As Integer = 0
                        Dim GrossAmount As Integer = 0
                        For i As Integer = 0 To hidRowIndex.Value - 1
                            Dim strMaterialCode As String = ""
                            Dim strMaterialDescription As String = ""
                            Dim strUnit As String = ""
                            Dim intAmount As Integer = 0

                            Dim txtMaterialCode As String = "txtChoice" + i.ToString
                            If Request.Form(txtMaterialCode) <> Nothing AndAlso Request.Form(txtMaterialCode).ToString.Trim() <> "" Then
                                strMaterialCode = Request.Form(txtMaterialCode)
                            End If

                            Dim txtMaterialDescription As String = "txtDescription" + i.ToString
                            If Request.Form(txtMaterialDescription) <> Nothing AndAlso Request.Form(txtMaterialDescription).ToString.Trim() <> "" Then
                                strMaterialDescription = Request.Form(txtMaterialDescription)
                            End If

                            If (strMaterialCode.Trim <> "") Then
                                Dim _NganhNgheId As Integer = (From q In data.DanhMucNganhNghes Where q.Code = strMaterialCode Select q.Id).FirstOrDefault

                                Dim NganhNgheList As New CertifiedHouseholdNganhNghe
                                NganhNgheList.CertifiedID = p.CertifiedID
                                NganhNgheList.DanhMucNganhNgheID = _NganhNgheId
                                NganhNgheList.Description = strMaterialDescription

                                data.CertifiedHouseholdNganhNghes.AddObject(NganhNgheList)

                                data.SaveChanges()
                                index = index + 1

                                'End If
                            End If
                        Next
                    Catch ex As Exception
                        Excute_Javascript("Alertbox('Cập nhật ngành nghề thất bại.');", Me.Page, True)
                        Exit Sub
                    End Try
                    'end ngành nghề

                    'start danh sách góp vốn

                    'lưu thông tin cho CertifiedHouseholdMember
                    Try
                        Dim index As Integer = 0
                        For i As Integer = 0 To hidRowIndex1.Value - 1
                            Dim strTenTV As String = ""
                            Dim strNoiDKHK As String = ""
                            Dim strVonGop As String = ""
                            Dim strTyLeVonGop As String = ""
                            Dim strCMND As String = ""
                            Dim strDescription As String = ""

                            Dim txtTenTV As String = "txtTenTV__" + i.ToString
                            If Request.Form(txtTenTV) <> Nothing AndAlso Request.Form(txtTenTV).ToString.Trim() <> "" Then
                                strTenTV = Request.Form(txtTenTV)
                            End If

                            Dim txtNoiDKHK As String = "txtNoiDKHK__" + i.ToString
                            If Request.Form(txtNoiDKHK) <> Nothing AndAlso Request.Form(txtNoiDKHK).ToString.Trim() <> "" Then
                                strNoiDKHK = Request.Form(txtNoiDKHK)
                            End If
                            Dim txtVonGop As String = "txtVonGop__" + i.ToString
                            If Request.Form(txtTenTV) <> Nothing AndAlso Request.Form(txtVonGop).ToString.Trim() <> "" Then
                                strVonGop = Request.Form(txtVonGop)
                            End If

                            Dim txtTyLeVonGop As String = "txtTyLeVonGop__" + i.ToString
                            If Request.Form(txtTyLeVonGop) <> Nothing AndAlso Request.Form(txtTyLeVonGop).ToString.Trim() <> "" Then
                                strTyLeVonGop = Request.Form(txtTyLeVonGop)
                            End If
                            Dim txtCMND As String = "txtCMND__" + i.ToString
                            If Request.Form(txtCMND) <> Nothing AndAlso Request.Form(txtCMND).ToString.Trim() <> "" Then
                                strCMND = Request.Form(txtCMND)
                            End If

                            Dim txtDescription As String = "txtDescription__" + i.ToString
                            If Request.Form(txtDescription) <> Nothing AndAlso Request.Form(txtDescription).ToString.Trim() <> "" Then
                                strDescription = Request.Form(txtDescription)
                            End If

                            If (strTenTV.Trim <> "") Then

                                Dim member As New CertifiedHouseholdMember
                                member.CertifiedID = p.CertifiedID
                                member.MemberName = strTenTV
                                member.MemberAddress = strNoiDKHK
                                member.MemberValues = strVonGop
                                member.MemberRate = strTyLeVonGop
                                member.MemberCard = strCMND
                                member.MemberDes = strDescription
                                member.MemberOrder = member.Id
                                data.CertifiedHouseholdMembers.AddObject(member)

                                data.SaveChanges()
                                index = index + 1

                                'End If
                            End If
                        Next
                    Catch ex As Exception
                        Excute_Javascript("Alertbox('Cập nhật danh sách góp vốn thất bại.');", Me.Page, True)
                        Exit Sub
                    End Try
                    'end danh sách góp vốn

                    'start thành phần hồ sơ
                    Dim intId As Integer = 0
                    For Each item As GridViewRow In grdShow.Rows
                        Dim chkItem As New CheckBox
                        chkItem = CType(item.FindControl("chkItem"), CheckBox)
                        If chkItem.Checked Then
                            'lay id cua thanh phan ho so
                            intId = grdShow.DataKeys(item.RowIndex)("Id").ToString
                            Dim ThanhPhanHoSo As New CertifiedHouseholdThanhPhanHoSo
                            ThanhPhanHoSo.CertifiedID = p.CertifiedID
                            ThanhPhanHoSo.ThanhPhanHoSoId = intId
                            data.CertifiedHouseholdThanhPhanHoSoes.AddObject(ThanhPhanHoSo)
                            data.SaveChanges()
                        End If
                    Next
                    Insert_App_Log("Create CertifiedHousehold:" & txtOwRepresentative.Text.Trim & "", Function_Name.CertifiedHousehold, Audit_Type.Create, Request.ServerVariables("REMOTE_ADDR"), Session("UserName"))
                    Excute_Javascript("Alertbox('Thêm mới dữ liệu thành công.');window.location ='myAdmin.html';", Me.Page, True)

                Catch ex As Exception
                    log4net.Config.XmlConfigurator.Configure()
                    log.Error("Error error " & AddTabSpace(1) & Session("Username") & AddTabSpace(1) & "IP:" & GetIPAddress(), ex)
                    Excute_Javascript("Alertbox('Cập nhật thất bại.');window.location ='myAdmin.html';", Me.Page, True)
                End Try
            Else
                Excute_Javascript("Alertbox('Mã đã tồn tại trong hệ thống.')", Me.Page, True)
            End If
        End Using
    End Sub

    Protected Sub btnHuy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnHuy.Click
        Response.Redirect("myAdmin.html")
    End Sub
#End Region

    Protected Sub grdShow_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdShow.RowDataBound
        If e.Row.RowIndex >= 0 Then
            Dim lblSTT As Label = CType(e.Row.FindControl("lblSTT"), Label)
            lblSTT.Text = e.Row.RowIndex + 1
            If Not grdShow.DataKeys(e.Row.RowIndex)("IsDefault") Is Nothing Then
                Dim chkItem As CheckBox = e.Row.FindControl("chkItem")
                chkItem.Checked = grdShow.DataKeys(e.Row.RowIndex)("IsDefault")
            End If
        End If
    End Sub
   
End Class
